package cn.nawang.ebeim.client.util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.RandomAccessFile;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @ClassName: FileOperation
 * @Description: TODO
 * @author fanyb
 * @date Sep 30, 2015 11:11:41 AM
 * @version v1.0
 */
public class FileOperation {

  private static final Logger LOG = LoggerFactory.getLogger(FileOperation.class);

  /**
   * 创建文件
   * 
   * @param fileName
   * @return
   */
  public static boolean createFile(File fileName) throws Exception {
    boolean flag = false;
    try {
      if (!fileName.exists()) {
        fileName.createNewFile();
        flag = true;
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    return flag;
  }

  /**
   * 读TXT文件内容
   * 
   * @param fileName
   * @return
   */
  public static String readTxtFile(File fileName) throws Exception {
    StringBuffer sb = new StringBuffer();
    FileReader fileReader = null;
    BufferedReader bufferedReader = null;
    try {
      fileReader = new FileReader(fileName);
      bufferedReader = new BufferedReader(fileReader);
      try {
        String line=  bufferedReader.readLine();
        while (line!=null) {
            sb.append(line);
            line=  bufferedReader.readLine();
            if(line!=null){
              sb.append("\r\n");
            }
        }
      } catch (Exception e) {
        e.printStackTrace();
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      if (bufferedReader != null) {
        bufferedReader.close();
      }
      if (fileReader != null) {
        fileReader.close();
      }
    }
    LOG.info("读取出来的文件内容是：" + "\r\n" + sb.toString());
    return sb.toString();
  }


  public static boolean writeTxtFile(String content, File fileName) throws Exception {
    RandomAccessFile mm = null;
    boolean flag = false;
    FileOutputStream o = null;
    try {
      o = new FileOutputStream(fileName);
      o.write(content.getBytes("utf-8"));
      o.close();
      flag = true;
    } catch (Exception e) {
      // TODO: handle exception
      e.printStackTrace();
    } finally {
      if (mm != null) {
        mm.close();
      }
    }
    return flag;
  }



  public static void contentToTxt(String filePath, String content) {
    String str = new String(); // 原有txt内容
    String s1 = new String();// 内容更新
    try {
      File f = new File(filePath);
      if (f.exists()) {
        LOG.info("文件存在");
      } else {
        LOG.info("文件不存在");
        f.createNewFile();// 不存在则创建
      }
      BufferedReader input = new BufferedReader(new FileReader(f));

      while ((str = input.readLine()) != null) {
        s1 += str + "\n";
      }
      System.out.println(s1);
      input.close();
      s1 += content;

      BufferedWriter output = new BufferedWriter(new FileWriter(f));
      output.write(s1);
      output.close();
    } catch (Exception e) {
      e.printStackTrace();

    }
  }
}
